配置OSS文件系统 | 您所在的位置:网站首页 › oss 文件系统 › 配置OSS文件系统 |
常见问题提示OSS挂载失败,报错信息为bucket not found or bucket path does not exist。 请确认OSS访问地址、Bucket名称是否填写准确。 请确认Bucket子目录是否填写准确,所指定目录是否在Bucket中预先存在。例如,若您指定Bucket子目录为/folderA或/folderA/,则Bucket中必须存在Object folderA/。仅存在Object folderA(末尾无/)、folderA/file,或者folderA/folderB/均会报错。 请确认是否为Bucket启用了静态网站托管功能。例如,若您开启了OSS静态网站托管功能,设定子目录首页名称为index.html,函数计算平台向OSS请求检查Bucket子目录/subdir是否存在时,OSS会尝试检查Object subdir/index.html是否存在,若不存在则会产生如上报错信息。更多示例请参见配置示例。 提示OSS挂载失败,报错信息为host resolv error或deadline exceeded。请确认Endpoint地址是否填写准确。 Endpoint地址中的域名解析失败会导致host resolv error报错。 内网Endpoint不可跨地域使用。使用其他地域的内网Endpoint作为访问地址时,会出现连接超时,导致deadline exceeded报错。 挂载失败,报错信息为invalid credentials。请确认您为服务配置的RAM角色是否具备访问OSS的权限,权限信息如下所示。更多信息,请参见授予函数计算访问其他云服务的权限。 只读:包括oss:ListObjects和oss:GetObject策略。 读写:包括oss:ListObjects、oss:GetObject、oss:PutObject、oss:DeleteObject、oss:ListParts和oss:AbortMultipartUpload。 说明oss:ListObjects为Bucket级别操作。因此,当您为特定的Bucket开启访问时,权限策略中需要包含Bucket级别的资源指示,例如acs:oss:*:*:bucketName。更多信息,请参见OSS Resource说明。 如何通过权限策略仅允许只读访问指定Bucket?展开查看权限策略描述示例。请将示例中bucketName替换为指定的Bucket名称。更多信息,请参见RAM Policy概述。 { "Version": "1", "Statement": [ { "Action": [ "oss:ListObjects", "oss:GetObject" ], "Resource": [ "acs:oss:*:*:bucketName", "acs:oss:*:*:bucketName/*" ], "Effect": "Allow" } ] }如何通过权限策略允许读写访问指定Bucket?展开查看权限策略描述示例。请将示例中bucketName替换为指定的Bucket名称。更多信息,请参见RAM Policy概述。 { "Version": "1", "Statement": [ { "Action": [ "oss:ListObjects", "oss:GetObject", "oss:PutObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListParts" ], "Resource": [ "acs:oss:*:*:bucketName", "acs:oss:*:*:bucketName/*" ], "Effect": "Allow" } ] }如何通过权限策略仅允许只读访问指定Bucket的子目录?展开查看权限策略描述示例。请将示例中bucketName替换为指定的Bucket名称,bucketPath替换为指定的Bucket子目录。更多信息,请参见RAM Policy概述。 { "Version": "1", "Statement": [ { "Action": "oss:ListObjects", "Effect": "Allow", "Resource": [ "acs:oss:*:*:bucketName" ], "Condition": { "StringLike": { "oss:Prefix": [ "bucketPath/*" ] } } }, { "Action": [ "oss:GetObject" ], "Effect": "Allow", "Resource": [ "acs:oss:*:*:bucketName/bucketPath/*" ] } ] }如何通过权限策略允许读写访问指定Bucket的子目录?展开查看权限策略描述示例。请将示例中bucketName替换为指定的Bucket名称,bucketPath替换为指定的Bucket子目录。更多信息,请参见RAM Policy概述。 { "Version": "1", "Statement": [ { "Action": "oss:ListObjects", "Effect": "Allow", "Resource": [ "acs:oss:*:*:bucketName" ], "Condition": { "StringLike": { "oss:Prefix": [ "bucketPath/*" ] } } }, { "Action": [ "oss:GetObject", "oss:PutObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListParts" ], "Effect": "Allow", "Resource": [ "acs:oss:*:*:bucketName/bucketPath/*" ] } ] }通过OSS挂载点写文件的过程中,从OSS侧观察文件为空。通过OSS挂载点写文件时,一般情况下,系统只在用户主动调用Flush或者关闭文件时,才将写入内容上传至OSS侧。 在OSS挂载点中,执行压缩、解压或文件传输等操作时响应较慢。OSS本身不支持文件系统API。当您将OSS Bucket挂载为目录之后,函数计算会组合封装OSS API,实现文件系统API的效果。例如,OSS本身不支持随机写,当您需要使用文件系统API变更OSS挂载点上现有的文件时,函数计算会将源文件从OSS全量下载并改写后重新上传到OSS。 当文件系统API与OSS API功能对应时,例如顺序的文件读写,通常操作执行的性能较好。而需要组合封装OSS API实现的操作,例如压缩、解压可能用到的文件随机读写操作,可能需与OSS进行多次交互,故性能略差于本地文件系统。 不同函数实例之间访问OSS挂载点会互相协调同步吗?不同函数实例之间相互独立,不同实例中查询到的OSS挂载点内容可能不同。例如,通过函数实例A在OSS挂载点中创建文件F后,在函数实例B中可能无法实时查询到该文件。 |
CopyRight 2018-2019 实验室设备网 版权所有 |